package be.ipl.finito.daoimpl;

import java.util.List;

import javax.ejb.Stateless;

import be.ipl.finito.dao.PlateauDao;
import be.ipl.finito.domaine.Joueur;
import be.ipl.finito.domaine.Partie;
import be.ipl.finito.domaine.Plateau;
import be.ipl.finito.exceptions.ArgumentInvalideException;

@SuppressWarnings("serial")
@Stateless
public class PlateauDaoImpl extends DaoImpl<Integer, Plateau> implements PlateauDao{

	@Override
	public Plateau creerPlateau(Joueur joueur, Partie partie)
			throws IllegalArgumentException {
		Plateau plateau = new Plateau(joueur, partie);
		return this.enregistrer(plateau);
	}

	@Override
	public Plateau recupererPlateau(Joueur joueur, Partie partie)
			throws IllegalArgumentException {
		String query = "select p from Plateau p where p.joueur.id = ?1 and p.partie.id = ?2";
		return this.recherche(query, joueur.getId(), partie.getId());
	}

	@Override
	public List<Plateau> recupererPlateauPartie(Partie partie) {
		String query = "SELECT p FROM Plateau p WHERE p.partie.id = ?1";
		return this.liste(query, partie.getId());
	}

	

	@Override
	public Plateau chargerCase(Plateau p) {
		p = recharger(p.getId());
		p.getLesCases().size();
		return p;
	}
	
	

}
